/**
 * @desc 根据url获取query参数值
 * @use let pageindex = getQueryValue(url,'current');
 */
export const getQueryValue = (url, name)=>{
  // 为防止地址栏有中文,先解码
  url = decodeURIComponent(url);
  // 获取地址栏中？拼接参数的位置
  const index = url.indexOf('?');
  // 不等于-1，说明有参数，否则没有参数返回null
  if(index !== -1) {
    // 截取参数部分并去掉&连接符转为数组
    const queryStrArr = url.substr(index + 1).split('&');
    // 循环数组并去掉等号=
    for(var i=0; i<queryStrArr.length; i++) {
      const itemArr = queryStrArr[i].split('=');
      // 如果数组中的第一个字段===传入的参数，则返回值
      if(itemArr[0] === name) { return itemArr[1] }
    }
  }
  return null
}

/**
 * @desc 截取地址栏参数,转换为json对象
 * @use let params = getUrlParams(url);
 */
export const getUrlParams = (url) => {
  // 为防止地址栏有中文,先解码
  url = decodeURIComponent(url);
  // 获取地址栏中？拼接参数的位置
  const index = url.indexOf('?');
  // 不等于-1，说明有参数，否则没有参数返回null
  if(index !== -1) {
    // 截取参数部分并去掉&连接符转为数组
    const queryStrArr = url.substr(index+1).split('&');
    // 循环数组并去掉等号=转为二位数组
    let newArray = [];
    for(var i=0; i<queryStrArr.length; i++) {
      newArray.push(queryStrArr[i].split('='));
    }
    // 循环二维数组转为对象形式并返回
    let data = {};
    for(var i=0; i<newArray.length; i++) {
      let key = newArray[i][0];
      let val = newArray[i][1];
      data[key] = val;
    }
    return data
  }
  return null
}

/**
 * @desc 将地址栏?后的参数转换为json对象
 * @use let params = getParams('current=1&pageSize=10&age=20');
 */
export const getParams = (param) => {
  // 为防止参数中有中文,先解码
  param = decodeURIComponent(param);
  // 去掉&连接符转为数组
  const queryStrArr = param.split('&');
  // 去掉等号=转为二位数组
  let newArray = [];
  for(var i=0; i<queryStrArr.length; i++) {
    newArray.push(queryStrArr[i].split('='));
  }
  // 循环二维数组转为对象形式并返回
  let data = {};
  for(var i=0; i<newArray.length; i++) {
    let key = newArray[i][0];
    let val = newArray[i][1];
    data[key] = val;
  }
  return data
}

/* 获取某一个参数
  @params:参数字段
  @调用：
    var url = "http://www.runoob.com/index.php?id=1&image=awesome.jpg";
    getUrlParam.getValue("image",url) 返回 "awesome.jpg";
*/
export const getValue = (param,url) => {
  var query = url.split("?")[1];
  console.log(query)
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if(pair[0] == param){return pair[1];}
  }
  return(false);
}

/*
  取所有参数的值
  @fieldName：参数字段
  @url：url地址
  @flag：参数出现的位置；取值1或0；1：表示中间位置；0：表示末尾最后一个
  @调用
    var url = "http://www.runoob.com/index.php?id=1&image=awesome.jpg";
    getUrlParam.getStrValue("image",url,"0") 返回 "awesome.jpg";
*/
export const getStrValue = (fieldName, url, flag) => {
  var fieldIndex = url.indexOf(fieldName + "="); //第一次出现指定字符串的位置
  var fieldRemain = url.substr(fieldIndex, url.length);
  if (flag == "1"){
    var value = fieldRemain.substr(0, fieldRemain.indexOf("&"));
    var index = value.indexOf('=');
    if(index !== -1){
      return value.substring((index+1));
    } else {
      window.confirm("地址有误，请检查！");
      return false;
    }
  } else {
    var value1 = fieldRemain.substr(0, url.length);
    var index1 = value1.indexOf('=');
    if(index1 !== -1){
      return value1.substring((index1+1));
    } else {
      window.confirm("地址有误，请检查！");
      return false;
    }
  }
}